<!DOCTYPE html>



  


<html class="theme-next pisces use-motion" lang="zh-Hans">
<head>
  <meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<meta name="theme-color" content="#222">









<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
















  
  
  <link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />







<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />

<link href="/css/main.css?v=5.1.4" rel="stylesheet" type="text/css" />


  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png?v=5.1.4">


  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png?v=5.1.4">


  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png?v=5.1.4">


  <link rel="mask-icon" href="/images/logo.svg?v=5.1.4" color="#222">





  <meta name="keywords" content="git," />










<meta name="description" content="git版本控制工具标签： git  为什么要有版本控制系统? 在开发过程中，经常需要对一个文件进行修改甚至删除，但是我们又希望能够保存这个文件的历史记录，如果通过备份，那么管理起来会非常的复杂。 在多人开发时，如果需要多人合作开发一个页面，那么修改以及合并也会非常的棘手。容易出现冲突。  什么是版本控制系统？版本控制系统（Version Control System）:是一种记录一个或若干文件内容">
<meta name="keywords" content="git">
<meta property="og:type" content="article">
<meta property="og:title" content="git版本控制工具">
<meta property="og:url" content="http://yoursite.com/2018/01/28/git版本控制工具/index.html">
<meta property="og:site_name" content="Jepson_鹏鹏的专栏">
<meta property="og:description" content="git版本控制工具标签： git  为什么要有版本控制系统? 在开发过程中，经常需要对一个文件进行修改甚至删除，但是我们又希望能够保存这个文件的历史记录，如果通过备份，那么管理起来会非常的复杂。 在多人开发时，如果需要多人合作开发一个页面，那么修改以及合并也会非常的棘手。容易出现冲突。  什么是版本控制系统？版本控制系统（Version Control System）:是一种记录一个或若干文件内容">
<meta property="og:locale" content="zh-Hans">
<meta property="og:updated_time" content="2018-02-13T07:05:18.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="git版本控制工具">
<meta name="twitter:description" content="git版本控制工具标签： git  为什么要有版本控制系统? 在开发过程中，经常需要对一个文件进行修改甚至删除，但是我们又希望能够保存这个文件的历史记录，如果通过备份，那么管理起来会非常的复杂。 在多人开发时，如果需要多人合作开发一个页面，那么修改以及合并也会非常的棘手。容易出现冲突。  什么是版本控制系统？版本控制系统（Version Control System）:是一种记录一个或若干文件内容">



<script type="text/javascript" id="hexo.configurations">
  var NexT = window.NexT || {};
  var CONFIG = {
    root: '/',
    scheme: 'Pisces',
    version: '5.1.4',
    sidebar: {"position":"left","display":"post","offset":12,"b2t":false,"scrollpercent":false,"onmobile":false},
    fancybox: true,
    tabs: true,
    motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
    duoshuo: {
      userId: '0',
      author: '博主'
    },
    algolia: {
      applicationID: '',
      apiKey: '',
      indexName: '',
      hits: {"per_page":10},
      labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
    }
  };
</script>



  <link rel="canonical" href="http://yoursite.com/2018/01/28/git版本控制工具/"/>





  <title>git版本控制工具 | Jepson_鹏鹏的专栏</title>
  








</head>

<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">

  
  
    
  

  <div class="container sidebar-position-left page-post-detail">
    <div class="headband"></div>

    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-wrapper">
  <div class="site-meta ">
    

    <div class="custom-logo-site-title">
      <a href="/"  class="brand" rel="start">
        <span class="logo-line-before"><i></i></span>
        <span class="site-title">Jepson_鹏鹏的专栏</span>
        <span class="logo-line-after"><i></i></span>
      </a>
    </div>
      
        <p class="site-subtitle">Just do it!</p>
      
  </div>

  <div class="site-nav-toggle">
    <button>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
    </button>
  </div>
</div>

<nav class="site-nav">
  

  
    <ul id="menu" class="menu">
      
        
        <li class="menu-item menu-item-home">
          <a href="/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-home"></i> <br />
            
            首页
          </a>
        </li>
      
        
        <li class="menu-item menu-item-tags">
          <a href="/tags/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-tags"></i> <br />
            
            标签
          </a>
        </li>
      
        
        <li class="menu-item menu-item-categories">
          <a href="/categories/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-th"></i> <br />
            
            分类
          </a>
        </li>
      
        
        <li class="menu-item menu-item-archives">
          <a href="/archives/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-archive"></i> <br />
            
            归档
          </a>
        </li>
      

      
    </ul>
  

  
</nav>



 </div>
    </header>

    <main id="main" class="main">
      <div class="main-inner">
        <div class="content-wrap">
          <div id="content" class="content">
            

  <div id="posts" class="posts-expand">
    

  

  
  
  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="http://yoursite.com/2018/01/28/git版本控制工具/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="Jepson">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="http://static.zybuluo.com/JepsonCC/focrrncqb7uriops1uguvcfd/image_1c4uu558p1vhh71a1mvqbsp11i2m.png">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Jepson_鹏鹏的专栏">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">git版本控制工具</h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">发表于</span>
              
              <time title="创建于" itemprop="dateCreated datePublished" datetime="2018-01-28T16:57:00+08:00">
                2018-01-28
              </time>
            

            

            
          </span>

          
            <span class="post-category" >
            
              <span class="post-meta-divider">|</span>
            
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              
                <span class="post-meta-item-text">分类于</span>
              
              
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/git/" itemprop="url" rel="index">
                    <span itemprop="name">git</span>
                  </a>
                </span>

                
                
              
            </span>
          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        <h1 id="git版本控制工具"><a href="#git版本控制工具" class="headerlink" title="git版本控制工具"></a>git版本控制工具</h1><p>标签： git</p>
<hr>
<h2 id="为什么要有版本控制系统"><a href="#为什么要有版本控制系统" class="headerlink" title="为什么要有版本控制系统?"></a>为什么要有版本控制系统?</h2><ol>
<li>在开发过程中，经常需要对一个文件进行修改甚至删除，但是我们又希望能够保存这个文件的历史记录，如果通过备份，那么管理起来会非常的复杂。</li>
<li>在多人开发时，如果需要多人合作开发一个页面，那么修改以及合并也会非常的棘手。容易出现冲突。</li>
</ol>
<h2 id="什么是版本控制系统？"><a href="#什么是版本控制系统？" class="headerlink" title="什么是版本控制系统？"></a>什么是版本控制系统？</h2><p>版本控制系统（Version Control System）:是一种记录一个或若干文件内容变化，以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件，而且可以对任何类型的文件进行版本控制。</p>
<p>常见的版本控制系统有：svn、cvs、git</p>
<h2 id="版本控制系统分类"><a href="#版本控制系统分类" class="headerlink" title="版本控制系统分类"></a>版本控制系统分类</h2><p>参考文章：<a href="https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6" target="_blank" rel="noopener">关于版本控制的介绍</a></p>
<p><strong>本地版本控制系统</strong></p>
<p>本地版本控制系统就是在一台机器上，记录版本的不同变化，保证内容不会丢失</p>
<p>缺点：如果多人开发，每个人都在不同的系统和电脑上开发，没办法协同工作。</p>
<p><strong>集中式版本控制系統</strong> </p>
<p>svn/cvs都是集中式的版本控制系统</p>
<ol>
<li>需要一个中央服务器来管理代码的的版本和备份</li>
<li>所有的用户电脑都是从中央服务器获取代码或者是将本地的代码提交到中央服务器</li>
<li>依赖与网络环境，如果连不上中央服务器，就无法提交和获取代码。</li>
<li>如果中央服务器宕机，所有人都无法工作。</li>
</ol>
<p><strong>分布式版本控制系统</strong> </p>
<p>git是分布式的版本控制系统。</p>
<ol>
<li>需要一台服务器作为代码仓库</li>
<li>每个用户电脑都是一个服务器（代码仓库），并且和代码仓库是镜像的，用户修改和获取代码都是提交到自己的服务器当中。</li>
<li>不需要网络就可以进行工作。</li>
<li>当连接网络时，用户可以选择将自己的服务器与代码仓库进行同步。</li>
</ol>
<h1 id="git"><a href="#git" class="headerlink" title="git"></a>git</h1><h2 id="git介绍"><a href="#git介绍" class="headerlink" title="git介绍"></a>git介绍</h2><blockquote>
<p>Git是一款免费、开源的<strong>分布式</strong> <strong>版本控制系统</strong> ，用于敏捷高效地处理任何或小或大的项目。</p>
</blockquote>
<p>Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。</p>
<h2 id="git安装"><a href="#git安装" class="headerlink" title="git安装"></a>git安装</h2><p><a href="https://git-scm.com/download/win" target="_blank" rel="noopener">下载地址</a></p>
<p><code>1. 不要安装在中文目录</code></p>
<p><code>2. 不要使用桌面管理软件</code></p>
<p>安装很简单，一直下一步即可。在任意的目录下右键，能看到菜单, 就表示安装成功了。</p>
<p>git是用法方式主要有两种，</p>
<ul>
<li>git gui，即图形化界面的方式</li>
<li>git bash，命令行的方式</li>
</ul>
<p><strong>给window用户的忠告：git的命令必须使用linux风格的shell来运行Git命令，不能使用window风格的shell运行git命令</strong> </p>
<ol>
<li>在任意文件夹中，都可以使用右键，通过git bash here打开命令行窗口，此时的路径就是当前目录。</li>
<li>窗口上右键，通过options–&gt;Text–&gt;select可以调整字体的大小。</li>
</ol>
<h2 id="bash入门"><a href="#bash入门" class="headerlink" title="bash入门"></a>bash入门</h2><p>bash是许多linux系统默认的shell(命令行工具)。</p>
<p>cmd和powershell是window系统默认的shell(命令行工具)。</p>
<p>二者的功能都一样，通过命令行来操作计算机的功能。</p>
<p>为什么要学习bash</p>
<ul>
<li>必须使用linux风格的shell来运行git命令</li>
<li>工作过程中，项目都是部署在linux系统中，了解一些常用的bash命令也是有必要的。</li>
</ul>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># cd 改变目录  （change directory）</span></span><br><span class="line"><span class="built_in">cd</span> images   <span class="comment">#进入images文件夹</span></span><br><span class="line"><span class="built_in">cd</span> ..      <span class="comment">#进入上一层目录</span></span><br><span class="line"><span class="built_in">cd</span> ~       <span class="comment">#进入用户根目录</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># tab  自动补全，当我们输命令或者目录很长时，可以使用tab键进行自动补全。</span></span><br><span class="line"><span class="comment"># 按两次tab，会把所有符合要求的内容都列出来。</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># pwd 打印当前目录的路径 （print work directory）</span></span><br><span class="line"><span class="built_in">pwd</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment"># ls 展示当前目录列表（list）</span></span><br><span class="line">ls         <span class="comment"># 展示当前目录</span></span><br><span class="line">ls -a      <span class="comment"># 展示全部内容，包括隐藏文件</span></span><br><span class="line">ls -l      <span class="comment"># 以列表的形式展示内容</span></span><br><span class="line">ls -al     <span class="comment"># 以列表的形式展示所有的内容，包括隐藏文件。</span></span><br><span class="line">ls --<span class="built_in">help</span>  <span class="comment"># 查看ls所有的参数。</span></span><br><span class="line">ls -l images   <span class="comment"># 展示images目录下的文件，如果没有写目录，默认展示当前目录。</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment"># clear reset清屏</span></span><br><span class="line">clear  <span class="comment"># 清除屏幕内容，滚动条，保留了历史</span></span><br><span class="line">reset  <span class="comment"># 重置，历史记录没了。</span></span><br><span class="line"></span><br><span class="line"></span><br><span class="line"><span class="comment"># mkdir  创建一个文件夹 （make directory）</span></span><br><span class="line">mkdir css          <span class="comment"># 创建一个css的文件夹</span></span><br><span class="line">mkdir css img js   <span class="comment"># 创建了三个文件夹</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># rmdir  删除一个空的文件夹（没啥用）</span></span><br><span class="line">rmdir img   <span class="comment"># 删除文件夹</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># touch  创建文件</span></span><br><span class="line">touch index.html   <span class="comment">#创建了一个index.html文件</span></span><br><span class="line">touch css/index.css <span class="comment"># 在css目录下创建idnex.css文件</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># rm 删除一个文件获取文件夹</span></span><br><span class="line">rm index.html <span class="comment"># 删除index.html文件</span></span><br><span class="line">rm js         <span class="comment"># 删除空的js文件夹</span></span><br><span class="line">rm -r css     <span class="comment"># 递归删除一个文件夹</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># mv 移动文件（move）</span></span><br><span class="line">mv index.html js            <span class="comment"># 将html文件移动到js文件夹中</span></span><br><span class="line">mv index.html index2.html   <span class="comment"># 将index.html重命名为index2.html</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># cp 复制文件（cp）</span></span><br><span class="line">cp index.html index2.html   <span class="comment"># 复制index.html文件，命名为index2.html</span></span><br><span class="line">cp -r css css02             <span class="comment"># 如果复制的是文件夹，需要使用-r参数。</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># cat 查看文件全部内容</span></span><br><span class="line">cat index.html</span><br><span class="line"><span class="comment"># less 查看文件部分内容</span></span><br><span class="line">less index.html</span><br><span class="line"><span class="comment"># q退出查看</span></span><br></pre></td></tr></table></figure>
<p>练习：</p>
<ol>
<li>在桌面新建一个 <code>test</code>文件夹</li>
<li>在test文件夹中打开git命令窗口</li>
<li>创建 css  images js 三个文件夹</li>
<li>新建index.html文件，在css文件中新建index.css文件，  在images中新建index.png文件，在js文件中新建index.js</li>
<li>把index.html重命名为index2.html</li>
<li>把index.css文件挪到js文件中</li>
</ol>
<h2 id="git初体验"><a href="#git初体验" class="headerlink" title="git初体验"></a>git初体验</h2><p>在第一次使用的时候，需要配置你的用户邮箱和用户名称，这两条配置是很重要的，每次提交git代码都会引用这两条信息，记录了谁提交了代码，会永久的记录在历史记录中。</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># git config  user.name 你的目标用户名</span></span><br><span class="line"><span class="comment"># git config  user.email 你的目标邮箱名</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 使用--global参数，配置全局的用户名和邮箱，只需要配置一次即可。</span></span><br><span class="line">git config  --global user.name hucc</span><br><span class="line">git config  --global user.email 111111@qq.com</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看配置信息</span></span><br><span class="line">git config --list</span><br></pre></td></tr></table></figure>
<ol>
<li>初始化git仓库<code>git init</code></li>
<li>查看当前git仓库的状态<code>git status</code></li>
<li>将文件添加到git的暂存区<code>git add 文件名</code></li>
<li>将文件由暂存区提交到仓库区<code>git commit -m &#39;提交说明&#39;</code></li>
<li>查看提交日子<code>git log</code></li>
</ol>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 要对某个项目使用git进行管理，需要使用git init命令初始化git仓库</span></span><br><span class="line"><span class="comment"># 会在当前目录生成一个隐藏文件夹 .git  不要去修改这个文件夹下的任意东西。</span></span><br><span class="line">git init</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看git的状态 ,如果此时新建一个文件，那么这个文件是没有被追踪的，说白了git还没有管理这个新建的文件</span></span><br><span class="line">git status </span><br><span class="line"></span><br><span class="line"><span class="comment"># 告诉git开始对index.html文件进行追踪， git会在暂存区中存储这个文件</span></span><br><span class="line">git add index.html</span><br><span class="line"></span><br><span class="line"><span class="comment"># 让文件由暂存区提交到仓库区。此时文件才真正的被git管理了。</span></span><br><span class="line"><span class="comment"># </span></span><br><span class="line"><span class="comment"># 如果提交日志乱码，右键--&gt;options--&gt;Text--&gt;将编码改成utf-8</span></span><br><span class="line"></span><br><span class="line">git commit -m <span class="string">'第一次提交'</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看提交日志</span></span><br><span class="line">git <span class="built_in">log</span></span><br></pre></td></tr></table></figure>
<h2 id="git的工作原理"><a href="#git的工作原理" class="headerlink" title="git的工作原理"></a>git的工作原理</h2><h2 id="git命令详解"><a href="#git命令详解" class="headerlink" title="git命令详解"></a>git命令详解</h2><h3 id="git-add-重点"><a href="#git-add-重点" class="headerlink" title="git add(重点)"></a>git add(重点)</h3><ul>
<li>作用：让git追踪一个新的文件，并且将文件由 工作区 添加到 暂存区，暂存文件</li>
<li>命令：<code>git add 文件名/目录名</code><ul>
<li>例如： <code>git add index.html</code></li>
</ul>
</li>
<li><code>git add --all</code> 或者 <code>git add -A</code> 获取<code>git add .</code>（简写） 添加所有文件</li>
<li><code>git add a.txt b.txt</code> 同时添加两个文件</li>
<li><code>git add *.js</code> 添加当前目录下的所有js文件</li>
<li><code>git add css/</code>添加css目录下所有的文件</li>
</ul>
<h3 id="git-checkout-文件名"><a href="#git-checkout-文件名" class="headerlink" title="git checkout 文件名"></a>git checkout 文件名</h3><ul>
<li>作用：暂存区的内容恢复到工作区。</li>
<li><code>git checkout 1.txt</code> 将暂存区中1.txt文件恢复到工作区</li>
</ul>
<h3 id="git-commit（重点）"><a href="#git-commit（重点）" class="headerlink" title="git commit（重点）"></a>git commit（重点）</h3><ul>
<li>作用：将文件由 暂存区 添加到  仓库区，生成版本号（历史记录，以后可以回退到某一个版本号）</li>
<li><code>git commit -m &quot;提交说明&quot;</code></li>
</ul>
<h3 id="git-status"><a href="#git-status" class="headerlink" title="git status"></a>git status</h3><ul>
<li>作用：查看文件的状态</li>
</ul>
<ul>
<li>命令：<code>git status</code></li>
<li>命令：<code>git stauts -s</code> 简化日志输出格式</li>
</ul>
<h3 id="git-log"><a href="#git-log" class="headerlink" title="git log"></a>git log</h3><ul>
<li>作用：查看提交日志</li>
<li><code>git log</code> 只能查看当前head以及以前的日志</li>
<li><code>git log --oneline</code> 简洁的日志信息</li>
<li><code>git reflog</code> 查看所有的提交变更日志</li>
</ul>
<h3 id="git-reset"><a href="#git-reset" class="headerlink" title="git reset"></a>git reset</h3><ul>
<li>作用：版本回退，将代码恢复到已经提交的某一个版本中。</li>
<li><code>git reset --hard 版本号</code> 将代码回退到某个指定的版本(版本号只要有前几位即可)</li>
<li><code>git reset --hard head~1</code>将版本回退到上一次提交<ul>
<li>~1:上一次提交</li>
<li>~2:上上次提交</li>
<li>~0:当前提交</li>
</ul>
</li>
</ul>
<h2 id="git的三个区"><a href="#git的三个区" class="headerlink" title="git的三个区"></a>git的三个区</h2><p>工作区、暂存区、本地仓库区</p>
<p>工作区：我们书写代码的地方，工作的目录就叫工作区。</p>
<p>暂存区：使用add命令，在<code>.git</code>目录中的一个索引文件，记录修改的文件</p>
<p>本地仓库区：将保存在暂存区域的内容永久转储到 Git 仓库中，生成版本号。生成版本号之后，就可以任何的回退到某一个具体的版本。</p>
<h2 id="git忽视文件"><a href="#git忽视文件" class="headerlink" title="git忽视文件"></a>git忽视文件</h2><blockquote>
<p>在仓库中，有些文件是不想被git管理的，比如数据的配置密码、写代码的一些思路等。git可以通过配置从而达到忽视掉一些文件，这样这些文件就可以不用提交了。</p>
</blockquote>
<ul>
<li>在仓库的根目录创建一个<code>.gitignore</code>的文件，文件名是固定的。</li>
<li>将不需要被git管理的文件路径添加到<code>.gitignore</code>中</li>
</ul>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 忽视idea.txt文件</span></span><br><span class="line">idea.txt</span><br><span class="line"></span><br><span class="line"><span class="comment"># 忽视.gitignore文件</span></span><br><span class="line">.gitignore</span><br><span class="line"></span><br><span class="line"><span class="comment"># 忽视css下的index.js文件</span></span><br><span class="line">css/index.js</span><br><span class="line"></span><br><span class="line"><span class="comment"># 忽视css下的所有的js文件</span></span><br><span class="line">css/*.js</span><br><span class="line"></span><br><span class="line"><span class="comment"># 忽视css下的所有文件</span></span><br><span class="line">css/*.*</span><br><span class="line"><span class="comment"># 忽视css文件夹</span></span><br><span class="line">css</span><br></pre></td></tr></table></figure>
<h1 id="git分支操作"><a href="#git分支操作" class="headerlink" title="git分支操作"></a>git分支操作</h1><p>分支就是科幻电影里面的平行宇宙，当你正在电脑前努力学习Git的时候，另一个你正在另一个平行宇宙里努力学习SVN。</p>
<p>如果两个平行宇宙互不干扰，那对现在的你也没啥影响。不过，在某个时间点，两个平行宇宙合并了，结果，你既学会了Git又学会了SVN！</p>
<h2 id="为什么要有分支？"><a href="#为什么要有分支？" class="headerlink" title="为什么要有分支？"></a><strong>为什么要有分支？</strong></h2><ul>
<li>如果你要开发一个新的功能，需要2周时间，第一周你只能写50%代码，如果此时立即提交，代码没写完，不完整的代码会影响到别人无法工作。如果等代码写完再提交，代码很容易丢失，风险很大。</li>
<li>有了分支，你就可以创建一个属于自己的分支，别人看不到，也不影响别人，你在自己的分支上工作，提交到自己的分支上，等到功能开发完毕，一次性的合并到原来的分支。这样既安全，又不影响他人工作。</li>
<li>在工作过程中，经常会碰到<strong>多任务并行开发</strong> 的情况，使用分支就能很好的避免任务之间的影响。</li>
<li>其他版本工具比如svn，cvs中也有分支这个概念，但是这些工具中的分支操作非常的慢，形同摆设。</li>
</ul>
<h2 id="分支操作的命令"><a href="#分支操作的命令" class="headerlink" title="分支操作的命令"></a>分支操作的命令</h2><blockquote>
<p>在git中，分支实质上仅仅是一个指针，每次代码提交后，这个分支指针就会向后移动，保证一直指向最后一次提交的的版本。</p>
</blockquote>
<h3 id="创建分支"><a href="#创建分支" class="headerlink" title="创建分支"></a>创建分支</h3><ul>
<li><code>git branch 分支名称</code>创建分支，分支中的代码，在创建时与当前分支的内容完全相同。</li>
<li>git在第一次提交时，就有了一个叫<code>master</code>的主分支。</li>
</ul>
<h3 id="查看分支"><a href="#查看分支" class="headerlink" title="查看分支"></a>查看分支</h3><ul>
<li><code>git branch</code>可以查看所有的分支，</li>
<li>在当前分支的前面会有一个<code>*</code></li>
</ul>
<h3 id="切换分支"><a href="#切换分支" class="headerlink" title="切换分支"></a>切换分支</h3><ul>
<li><code>git checkout 分支名称</code>切换分支</li>
<li>在当前分支的任何操作，都不会影响到其他的分支，除非进行了分支合并。</li>
<li>切换分支之前，<strong>必须保证代码已经提交了</strong> </li>
</ul>
<h3 id="创建并切换分支"><a href="#创建并切换分支" class="headerlink" title="创建并切换分支"></a>创建并切换分支</h3><ul>
<li><code>git checkout -b 分支名称</code> 创建并切换分支</li>
<li>切换分支会做两件事情<ul>
<li>把head指针指向当前的分支</li>
<li>将工作区的文件变成当前分支最新的内容。</li>
</ul>
</li>
</ul>
<h3 id="删除分支"><a href="#删除分支" class="headerlink" title="删除分支"></a>删除分支</h3><ul>
<li><code>git branch -d 分支名称</code> 可以删除分支</li>
<li>注意：不能在当前分支删除当前分支，需要切换到其他分支才能删除。</li>
<li>注意：<code>master</code>分支是可以删除的，但是不推荐那么做。</li>
</ul>
<h3 id="合并分支"><a href="#合并分支" class="headerlink" title="合并分支"></a>合并分支</h3><ul>
<li><code>git merge 分支名称</code> 将其他分支的内容合并到当前分支。</li>
<li>在<code>master</code>分支中执行<code>git merge dev</code> 将<code>dev</code>分支中的代码合并到<code>master</code>分支</li>
<li><a href="https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6" target="_blank" rel="noopener">分支合并</a></li>
</ul>
<h2 id="git合并冲突"><a href="#git合并冲突" class="headerlink" title="git合并冲突"></a>git合并冲突</h2><ul>
<li>对于同一个文件，如果有多个分支需要合并时，容易出现冲突。</li>
<li>合并分支时，如果出现冲突，只能手动处理，再次提交，一般的作法，把自己的代码放到冲突代码的后面即可。</li>
</ul>
<h1 id="远程仓库"><a href="#远程仓库" class="headerlink" title="远程仓库"></a>远程仓库</h1><p>所有的程序员都可以通过远程仓库来进行版本的共享，达到所有人的代码一致的效果。</p>
<h2 id="远程仓库相关的命令"><a href="#远程仓库相关的命令" class="headerlink" title="远程仓库相关的命令"></a>远程仓库相关的命令</h2><h3 id="git-push"><a href="#git-push" class="headerlink" title="git push"></a>git push</h3><ul>
<li>作用：将本地仓库中代码提交到远程仓库</li>
<li><code>git push 仓库地址 master</code> 在代码提交到远程仓库，注意master分支必须写，不能省略</li>
<li>例子：<code>git push git@github.com:hucongcong/test.git master</code> 如果第一次使用，需要填写github的用户名和密码</li>
</ul>
<h3 id="git-pull"><a href="#git-pull" class="headerlink" title="git pull"></a>git pull</h3><ul>
<li>作用：将远程的代码下载到本地</li>
<li><code>git pull 代码地址</code> 将远程的代码中master分支下载到本地</li>
<li>通常在push前，需要先pull一次。</li>
</ul>
<h3 id="git-clone"><a href="#git-clone" class="headerlink" title="git clone"></a>git clone</h3><ul>
<li>作用：克隆远程仓库的代码到本地</li>
<li>`git clone [远程仓库地址]</li>
<li><code>git clone git://github.com/schacon/test.git</code>会在本地新建一个<code>test</code>文件夹，在test中包含了一个<code>.git</code>目录，用于保存所有的版本记录，同时test文件中还有最新的代码，你可以直接进行后续的开发和使用。</li>
<li>git克隆默认会使用远程仓库的项目名字，也可以自己指定。需要是使用以下命令：<code>git clone [远程仓库地址] [本地项目名]</code></li>
</ul>
<h3 id="git-remote"><a href="#git-remote" class="headerlink" title="git remote"></a>git remote</h3><p><code>git remote -v 可查看地址</code><br>每次push和pull操作都需要带上远程仓库的地址，非常的麻烦，我们可以给仓库地址设置一个别名</p>
<ul>
<li><code>git remote add 仓库别名 仓库地址</code> 使用仓库别名替代仓库地址。仓库别名相当于一个js变量，仓库地址就是对应的值。<ul>
<li><code>git remote add hucc git@github.com:hucongcong/test.git</code> 设置了一个hucc的仓库别名，以后push和pull都可以不用仓库地址，而用hucc</li>
</ul>
</li>
<li><code>git remote remove hucc</code> 删除hucc这个仓库别名。</li>
<li><code>git remote</code> 查看所有的仓库别名</li>
<li>如果使用了<code>git clone</code>命令从远程仓库获取下来的，那么这个本地仓库会自动添加一个 origin的远程地址，指向的就是克隆的远程地址。</li>
</ul>
<h2 id="github"><a href="#github" class="headerlink" title="github"></a>github</h2><p>git与github没有直接的关系。</p>
<ul>
<li>git是一个版本控制工具。</li>
<li>github是一个代码托管平台，是git的一个远程代码仓库。</li>
<li>将来工作时，公司会有自己的代码仓库。</li>
</ul>
<p><a href="https://github.com/" target="_blank" rel="noopener">github官网</a></p>
<p><a href="https://git.oschina.net/" target="_blank" rel="noopener">开源中国-git</a></p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">1. gitHub是一个面向开源及私有软件项目的托管平台，因为只支持git 作为唯一的版本库格式进行托管，故名gitHub。</span><br><span class="line">2. github免费，代码所有人都能看到，但是只有你自己能修改。付费的可以隐藏。</span><br></pre></td></tr></table></figure>
<p>在github上创建一个项目，获取到仓库的地址。然后就可以将本地的代码推送到远程的服务器上。</p>
<h2 id="SSH免密码登陆"><a href="#SSH免密码登陆" class="headerlink" title="SSH免密码登陆"></a>SSH免密码登陆</h2><p>git支持多种数据传输协议：</p>
<ul>
<li>https协议：<code>https://github.com/hucongcong/jquery.git</code></li>
<li>ssh协议：<code>git@github.com:hucongcong/jquery.git</code></li>
</ul>
<p>每次push或者pull代码，如果使用https协议，那么都需要输入用户名和密码进行身份的确认，非常麻烦。</p>
<ul>
<li>github为了账户的安全，需要对每一次push请求都要验证用户的身份，只有合法的用户才可以push</li>
<li>使用ssh协议，配置ssh免密码，可以做到免密码往github推送代码</li>
</ul>
<h3 id="SSH免密码登录配置"><a href="#SSH免密码登录配置" class="headerlink" title="SSH免密码登录配置"></a>SSH免密码登录配置</h3><p>注意：这些命令需要在bash中敲</p>
<ul>
<li>1 创建SSH Key：<code>ssh-keygen -t rsa</code></li>
<li>2 在文件路径 <code>C:\用户\当前用户名\</code> 找到 <code>.ssh</code> 文件夹</li>
<li>3 文件夹中有两个文件：<ul>
<li>私钥：<code>id_rsa</code></li>
<li>公钥：<code>id_rsa.pub</code></li>
</ul>
</li>
<li>4 在 <code>github -&gt; settings -&gt; SSH and GPG keys</code>页面中，新创建SSH key</li>
<li>5 粘贴 公钥 <code>id_rsa.pub</code> 内容到对应文本框中</li>
<li>5 在github中新建仓库或者使用现在仓库，拿到<code>git@github.com:用户名/仓库名.git</code></li>
<li>6 此后，再次SSH方式与github“通信”，不用输入密码确认身份了</li>
</ul>
<h2 id="github-pages介绍"><a href="#github-pages介绍" class="headerlink" title="github pages介绍"></a>github pages介绍</h2><p><a href="https://pages.github.com/" target="_blank" rel="noopener">GitHub Pages </a>本用于介绍托管在 GitHub 的项目， 不过，由于他的空间免费稳定，用来做搭建一个博客再好不过了。</p>
<p>缺点：只能放静态页面，也就说github pages只能解析html、css、js，无法解析后端语言。</p>
<p>[用户名.github.io] 将来访问路径</p>
<p>博客搭建步骤：</p>
<ol>
<li>在本地工作目录使用git初始化 <code>git init</code></li>
<li>创建自己的博客项目</li>
<li>将创建好的博客添加到暂存区 <code>git add [文件路径]</code></li>
<li>本地提交： <code>git commit -m &quot;第一个博客&quot;</code></li>
<li>在github上创建一个项目，项目名<code>用户名.github.io</code> 固定的</li>
<li>提交到github：<code>git push github仓库地址 master</code></li>
<li>查看github中对应的仓库中，是不是提交到了</li>
<li>访问：用户名.github.io</li>
</ol>

      
    </div>
    
    
    

    

    
      <div>
        <div style="padding: 10px 0; margin: 20px auto; width: 90%; text-align: center;">
  <div>坚持原创技术分享，您的支持将鼓励我继续创作！</div>
  <button id="rewardButton" disable="enable" onclick="var qr = document.getElementById('QR'); if (qr.style.display === 'none') {qr.style.display='block';} else {qr.style.display='none'}">
    <span>打赏</span>
  </button>
  <div id="QR" style="display: none;">

    
      <div id="wechat" style="display: inline-block">
        <img id="wechat_qr" src="http://static.zybuluo.com/JepsonCC/qi8vjk62dk51zqt0a8an8xir/image_1c4uso3kemnn18jg11951ho31g2o9.png" alt="Jepson 微信支付"/>
        <p>微信支付</p>
      </div>
    

    
      <div id="alipay" style="display: inline-block">
        <img id="alipay_qr" src="http://static.zybuluo.com/JepsonCC/6l63d7x84xii3bwgkpcqk33n/image_1c4usp36f121s29j2r511fd18r5m.png" alt="Jepson 支付宝"/>
        <p>支付宝</p>
      </div>
    

    

  </div>
</div>

      </div>
    

    

    <footer class="post-footer">
      
        <div class="post-tags">
          
            <a href="/tags/git/" rel="tag"># git</a>
          
        </div>
      

      
      
      

      
        <div class="post-nav">
          <div class="post-nav-next post-nav-item">
            
          </div>

          <span class="post-nav-divider"></span>

          <div class="post-nav-prev post-nav-item">
            
              <a href="/2018/02/02/微信小程序/" rel="prev" title="微信小程序">
                微信小程序 <i class="fa fa-chevron-right"></i>
              </a>
            
          </div>
        </div>
      

      
      
    </footer>
  </div>
  
  
  
  </article>



    <div class="post-spread">
      
    </div>
  </div>


          </div>
          


          

  



        </div>
        
          
  
  <div class="sidebar-toggle">
    <div class="sidebar-toggle-line-wrap">
      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
    </div>
  </div>

  <aside id="sidebar" class="sidebar">
    
    <div class="sidebar-inner">

      

      
        <ul class="sidebar-nav motion-element">
          <li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap">
            文章目录
          </li>
          <li class="sidebar-nav-overview" data-target="site-overview-wrap">
            站点概览
          </li>
        </ul>
      

      <section class="site-overview-wrap sidebar-panel">
        <div class="site-overview">
          <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
            
              <img class="site-author-image" itemprop="image"
                src="http://static.zybuluo.com/JepsonCC/focrrncqb7uriops1uguvcfd/image_1c4uu558p1vhh71a1mvqbsp11i2m.png"
                alt="Jepson" />
            
              <p class="site-author-name" itemprop="name">Jepson</p>
              <p class="site-description motion-element" itemprop="description">爱学习, 爱前端</p>
          </div>

          <nav class="site-state motion-element">

            
              <div class="site-state-item site-state-posts">
              
                <a href="/archives/">
              
                  <span class="site-state-item-count">5</span>
                  <span class="site-state-item-name">日志</span>
                </a>
              </div>
            

            
              
              
              <div class="site-state-item site-state-categories">
                <a href="/categories/index.html">
                  <span class="site-state-item-count">5</span>
                  <span class="site-state-item-name">分类</span>
                </a>
              </div>
            

            
              
              
              <div class="site-state-item site-state-tags">
                <a href="/tags/index.html">
                  <span class="site-state-item-count">5</span>
                  <span class="site-state-item-name">标签</span>
                </a>
              </div>
            

          </nav>

          

          
            <div class="links-of-author motion-element">
                
                  <span class="links-of-author-item">
                    <a href="https://github.com/JepsonGithub" target="_blank" title="GitHub">
                      
                        <i class="fa fa-fw fa-github"></i>GitHub</a>
                  </span>
                
            </div>
          

          
          

          
          

          

        </div>
      </section>

      
      <!--noindex-->
        <section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active">
          <div class="post-toc">

            
              
            

            
              <div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-1"><a class="nav-link" href="#git版本控制工具"><span class="nav-number">1.</span> <span class="nav-text">git版本控制工具</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#为什么要有版本控制系统"><span class="nav-number">1.1.</span> <span class="nav-text">为什么要有版本控制系统?</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#什么是版本控制系统？"><span class="nav-number">1.2.</span> <span class="nav-text">什么是版本控制系统？</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#版本控制系统分类"><span class="nav-number">1.3.</span> <span class="nav-text">版本控制系统分类</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#git"><span class="nav-number">2.</span> <span class="nav-text">git</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#git介绍"><span class="nav-number">2.1.</span> <span class="nav-text">git介绍</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#git安装"><span class="nav-number">2.2.</span> <span class="nav-text">git安装</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#bash入门"><span class="nav-number">2.3.</span> <span class="nav-text">bash入门</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#git初体验"><span class="nav-number">2.4.</span> <span class="nav-text">git初体验</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#git的工作原理"><span class="nav-number">2.5.</span> <span class="nav-text">git的工作原理</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#git命令详解"><span class="nav-number">2.6.</span> <span class="nav-text">git命令详解</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#git-add-重点"><span class="nav-number">2.6.1.</span> <span class="nav-text">git add(重点)</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#git-checkout-文件名"><span class="nav-number">2.6.2.</span> <span class="nav-text">git checkout 文件名</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#git-commit（重点）"><span class="nav-number">2.6.3.</span> <span class="nav-text">git commit（重点）</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#git-status"><span class="nav-number">2.6.4.</span> <span class="nav-text">git status</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#git-log"><span class="nav-number">2.6.5.</span> <span class="nav-text">git log</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#git-reset"><span class="nav-number">2.6.6.</span> <span class="nav-text">git reset</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#git的三个区"><span class="nav-number">2.7.</span> <span class="nav-text">git的三个区</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#git忽视文件"><span class="nav-number">2.8.</span> <span class="nav-text">git忽视文件</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#git分支操作"><span class="nav-number">3.</span> <span class="nav-text">git分支操作</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#为什么要有分支？"><span class="nav-number">3.1.</span> <span class="nav-text">为什么要有分支？</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#分支操作的命令"><span class="nav-number">3.2.</span> <span class="nav-text">分支操作的命令</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#创建分支"><span class="nav-number">3.2.1.</span> <span class="nav-text">创建分支</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#查看分支"><span class="nav-number">3.2.2.</span> <span class="nav-text">查看分支</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#切换分支"><span class="nav-number">3.2.3.</span> <span class="nav-text">切换分支</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#创建并切换分支"><span class="nav-number">3.2.4.</span> <span class="nav-text">创建并切换分支</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#删除分支"><span class="nav-number">3.2.5.</span> <span class="nav-text">删除分支</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#合并分支"><span class="nav-number">3.2.6.</span> <span class="nav-text">合并分支</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#git合并冲突"><span class="nav-number">3.3.</span> <span class="nav-text">git合并冲突</span></a></li></ol></li><li class="nav-item nav-level-1"><a class="nav-link" href="#远程仓库"><span class="nav-number">4.</span> <span class="nav-text">远程仓库</span></a><ol class="nav-child"><li class="nav-item nav-level-2"><a class="nav-link" href="#远程仓库相关的命令"><span class="nav-number">4.1.</span> <span class="nav-text">远程仓库相关的命令</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#git-push"><span class="nav-number">4.1.1.</span> <span class="nav-text">git push</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#git-pull"><span class="nav-number">4.1.2.</span> <span class="nav-text">git pull</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#git-clone"><span class="nav-number">4.1.3.</span> <span class="nav-text">git clone</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#git-remote"><span class="nav-number">4.1.4.</span> <span class="nav-text">git remote</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#github"><span class="nav-number">4.2.</span> <span class="nav-text">github</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#SSH免密码登陆"><span class="nav-number">4.3.</span> <span class="nav-text">SSH免密码登陆</span></a><ol class="nav-child"><li class="nav-item nav-level-3"><a class="nav-link" href="#SSH免密码登录配置"><span class="nav-number">4.3.1.</span> <span class="nav-text">SSH免密码登录配置</span></a></li></ol></li><li class="nav-item nav-level-2"><a class="nav-link" href="#github-pages介绍"><span class="nav-number">4.4.</span> <span class="nav-text">github pages介绍</span></a></li></ol></li></ol></div>
            

          </div>
        </section>
      <!--/noindex-->
      

      

    </div>
  </aside>


        
      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="footer-inner">
        <div class="copyright">&copy; <span itemprop="copyrightYear">2018</span>
  <span class="with-love">
    <i class="fa fa-user"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">Jepson</span>
  
</div>


  <div class="powered-by">由 <a class="theme-link" target="_blank" href="https://hexo.io">Hexo</a> 强力驱动</div>



  <span class="post-meta-divider">|</span>



  <div class="theme-info">主题 &mdash; <a class="theme-link" target="_blank" href="https://github.com/iissnan/hexo-theme-next">NexT.Pisces</a> v5.1.4</div>




<div><span><a href="http://www.miitbeian.gov.cn">苏ICP备18002051号-1</a></span></div>

        







        
      </div>
    </footer>

    
      <div class="back-to-top">
        <i class="fa fa-arrow-up"></i>
        
      </div>
    

    

  </div>

  

<script type="text/javascript">
  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
    window.Promise = null;
  }
</script>









  












  
  
    <script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>
  

  
  
    <script type="text/javascript" src="/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>
  

  
  
    <script type="text/javascript" src="/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>
  

  
  
    <script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>
  

  
  
    <script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
  

  
  
    <script type="text/javascript" src="/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
  


  


  <script type="text/javascript" src="/js/src/utils.js?v=5.1.4"></script>

  <script type="text/javascript" src="/js/src/motion.js?v=5.1.4"></script>



  
  


  <script type="text/javascript" src="/js/src/affix.js?v=5.1.4"></script>

  <script type="text/javascript" src="/js/src/schemes/pisces.js?v=5.1.4"></script>



  
  <script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.4"></script>
<script type="text/javascript" src="/js/src/post-details.js?v=5.1.4"></script>



  


  <script type="text/javascript" src="/js/src/bootstrap.js?v=5.1.4"></script>



  


  




	





  





  












  





  

  

  

  
  

  

  

  

</body>
</html>
